#!/usr/bin/env python
# encoding: utf-8
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

import os

from girder.models.setting import Setting


class ImageSpaceSetting(Setting):
    requiredSettings = ('IMAGE_SPACE_SOLR',
                        'IMAGE_SPACE_PREFIX',
                        'IMAGE_SPACE_SOLR_PREFIX')

    def validateImageSpaceSolr(self, doc):
        return doc.rstrip('/')

    def validateImageSpaceSolrPrefix(self, doc):
        return doc.rstrip('/')

    def validateImageSpacePrefix(self, doc):
        return doc.rstrip('/')

    def get(self, key):
        storedSetting = super(ImageSpaceSetting, self).get(key)

        if os.environ.get(key, '') != '':
            return os.environ.get(key)
        elif storedSetting is not None:
            return storedSetting
        elif key in self.requiredSettings:
            raise Exception('ImageSpace will not function without the %s setting.' % key)
        else:
            return False
